﻿$(function(){//延迟加载
	var dvbelong='';
	var done=0;//是否编辑结束
	var updaterows=null; 
	var newrows=null;
	var deleterows=null;
	var secvaluerow=null;
	var fieldcode=null;
	
	$('#search').hide();
	$('a[name=dvres]').click(function(){
		//$('#devres').panel('collapse',true)
		dvbelong=$(this).attr('value');	
		
		$('#fieldlist').datagrid({
			url:'showdvsecsetlist',
			height:'600px',
			singleSelect:true,
			queryParams:{
				dvbelong:dvbelong,
			},
			columns:[[{
				field:'fieldname',
				title:'字段名称',
				width:'10%',
				editor:{
					type:'textbox',
					options:{
						required:true
					}
				}
			},{
				field:'fieldcode',
				title:'字段编码',
				width:'10%',
				editor:{
					type:'textbox',
					options:{
						required:true
					}
				}
			},{
				field:'ifchange',
				title:'是否可配置',
				width:'10%',
//				formatter:function(value,row,index){
//					if(value==1){
//						return '是';
//					}else{
//						return '否';
//					}
//				},
				editor:{
					type:'combobox',
					options:{					
						valueField:'ifchangevalue',
						textField:'ifchange',
						data:[{
							ifchangevalue:true,
							ifchange:'是',
						},{
							ifchangevalue:false,
							ifchange:'否',
						}]
					}
				}
			},{
				field:'ifavail',
				title:'是否显示字段',
				width:'8%',
//				formatter:function(value,row,index){
//					if(value){
//						return '是';
//					}else{
//						return '否';
//					}
//				},
				editor:{
					type:'combobox',
					options:{
						valueField:'ifavailvalue',
	        	  		textField:'ifavail',
	        	  		data:[{
	        	  			ifavailvalue:true,
	        	  			ifavail:'是',
	        	  		},{
	        	  			ifavailvalue:false,
	        	  			ifavail:'否',
	        	  		}]
					}
				}
			},{
				field:'ifshow',
				title:'默认显示字段',
				width:'8%',
//				formatter:function(value,row,index){
//					if(value){
//						return '是';
//					}else{
//						return '否';
//					}
//				},
				editor:{
					type:'combobox',
					options:{
						valueField:'ifshowvalue',
						textField:'ifshow',
						data:[{
							ifshowvalue:true,
							ifshow:'是'
						},{
							ifshowvalue:false,
							ifshow:'否'
						}]
					}
				}
			},{
				field:'ifsec',
				title:'是否查询条件',
				width:'10%',
//				formatter:function(value,row,index){
//					if(value){
//						return '是';
//					}else{
//						return '否';
//					}
//				},
				editor:{
					type:'combobox',
					options:{
						valueField:'ifsecvalue',
						textField:'ifsec',
						data:[{
							ifsecvalue:true,
							ifsec:'是'
						},{
							ifsecvalue:false,
							ifsec:'否'
						}]
					}
				}
			},{
				field:'sectype',
				title:'查询类型',
				width:'10%',
				formatter:function(value,row,index){
					if(value=='1'){
						return '单选'
					}else if(value=='2'){
						return '复选'
					}else if(value=='4'){
						return '文本'
					}else if(value=='5'){
						return '数字'
					}else if(value=='3'){
						return '日期'
					}else {
						return '无'
					}
				},
				editor:{
					type:'combobox',
					options:{
						valueField:'sectypevalue',
						textField:'sectype',
						data:[{
							sectypevalue:'0',
							sectype:'无'
						},{
							sectypevalue:'1',
							sectype:'单选'
						},{
							sectypevalue:'2',
							sectype:'复选'
						},{
							sectypevalue:'5',
							sectype:'数字'
						},{
							sectypevalue:'4',
							sectype:'文本'
						},{
							sectypevalue:'3',
							sectype:'日期'
						}],
						onChange:function(newValue,oldValue){
							if(newValue=='1'||newValue=='2'){
//								alert('ok');
								var row=$('#fieldlist').datagrid('getSelected');
								secvaluerow=$('#fieldlist').datagrid('getRowIndex',row);
								fieldcode=row.fieldcode;
//								alert(secvaluerow);
//								alert(fieldcode);
							    var ed = $('#fieldlist').datagrid( 'getEditor',{index:secvaluerow,field: 'secvalue' });
							    $(ed.target).combobox({
									multiple:'true',
									url:'showdatadicbyfieldId?fieldcode='+fieldcode+'&dvbelong='+dvbelong,
									valueField:fieldcode,
									textField:fieldcode
							    });
								
								
								
								
							}							
						}
					}
				}
			},{
				field:'secvalue',
				title:'查询字段可选值(单/复选)',
				width:'20%',
				editor:{
					type:'combobox',
					options:{
						valueField:'ifsecv',
						textField:'ifs',
						data:[{
							ifsecv:'0',
							ifs:'无'
						},{
							ifsecv:'1',
							ifs:'单选'
						}]
					}
				}
			},{
				field:'fieldnum',
				title:'字段排序',
				width:'10%',
				editor:{
					type:'numberbox',
					options:{
						required:true
					}
				}
			}]],
			toolbar: [{
				iconCls: 'icon-add',
				text:'新增字段',
				handler: function(){
					append();
				}
			},'-',{
				iconCls: 'icon-save',
				text:'确定',
				handler: function(){
					accept();
				}
			},'-',{
				iconCls: 'icon-undo',
				text:'取消修改',
				handler: function(){
					reject();
				}
			},'-',{
				iconCls: 'icon-remove',
				text:'删除字段',
				handler: function(){
					removeit();
				}
			}],
//			fit:true,
			onDblClickRow:onClickRow,
//			onClickCell:function(index, field, value){
//				if(value=='1'||value=='2'){
//					secvaluerow=index;
//					fieldcode=$('#fieldlist').datagrid('getRows')[index].fieldcode;
//				}
//			},
			striped:true,
			nowrap:true,
			pagination:true,
			rownumbers:true,
//			autoRowHeight:false
		});
	});
	
	$('#complconfig').linkbutton({
		iconCls:'icon-ok',
		width:'240px',
		height:'28px',
		onClick:function(){
			if(done==0){
				alert('请先确定修改');
				return;
			}
			var listup=updaterows.length==0?'':JSON.stringify(updaterows);
			var listn=newrows.length==0?'':JSON.stringify(newrows);
			var listde=deleterows.length==0?'':JSON.stringify(deleterows);
			alert(updaterows.length);
			alert(newrows.length);
			alert(deleterows.length);
			if(listup==''&&listn==''&&listde==''){
				slert('未修改');
			}
			$.ajax({
				url:'compldvsecconfig',
				type:'POST',
				data:{
					listupdate:listup,
					listnew:listn,
					listdelete:listde
				},
				success:function(data){
					alert(data.msg);
					$('#fieldlist').datagrid('reload',{
						dvbelong:dvbelong
					});
				}
			});
		}
	});
	
	
	var editIndex = undefined;	
	function endEditing(){
		if (editIndex == undefined){return true}
		if ($('#fieldlist').datagrid('validateRow', editIndex)){
			editIndex = undefined;
			return true;
		} else {
			return false;
		}
	}

	function onClickRow(index){
		done=0;
		if (editIndex!= index){
			if (endEditing()){
				$('#fieldlist').datagrid('selectRow', index)
						.datagrid('beginEdit', index);
				editIndex = index;
			} else {
				$('#fieldlist').datagrid('selectRow', editIndex);
			}
		}
	}

	function append(){
		if (endEditing()){
//			if(functypesort!='1'){
//				return
//			}
			$('#fieldlist').datagrid('appendRow',{
				fieldname: '',
				ifsec:false,
				sectype:'0',
				ifshow:true,
				fieldbelong:dvbelong,
				fieldcode:'',
				ifavail:true,
				ifchange:true,
				fieldlength:100,
				fieldnum:1
			});

			editIndex = $('#fieldlist').datagrid('getRows').length-1;
			$('#fieldlist').datagrid('selectRow', editIndex)
					.datagrid('beginEdit', editIndex);
			}
		done=0;
	}
	
	function removeit(){
		if (editIndex == undefined){return}
		$('#fieldlist').datagrid('cancelEdit', editIndex).datagrid('deleteRow', editIndex);

	}

	function accept(){
		if (endEditing()){
			done=1;
			updaterows = $('#fieldlist').datagrid('getChanges','updated','inserted');
			newrows = $('#fieldlist').datagrid('getChanges','inserted');
			deleterows=$('#fieldlist').datagrid('getChanges','deleted');
			$('#fieldlist').datagrid('acceptChanges');
			editIndex = undefined;
		}
	}

	function reject(){
		$('#funclist').datagrid('rejectChanges');
		editIndex = undefined;
	}

	function getChanges(){
		var rows = $('#funclist').datagrid('getChanges');
		alert(rows.length+' rows are changed!');
	}
});